<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<body>
<script>

function CheckPixelRGB(ctx, x, y, rgb)
{
    var imageData = ctx.getImageData(x, y, 1, 1).data;
    assert_array_equals(imageData.slice(0, 3), rgb);
}

function TestContextScale(scaleWidth, scaleHeight)
{
    ctx = document.createElement('canvas').getContext('2d');   
    ctx.scale(scaleWidth, scaleHeight);
    ctx.fillStyle = 'green';
    ctx.fillRect(0, 0, 100, 100);
    CheckPixelRGB(ctx, 50, 50, [0, 128, 0]);
}

function TestContextTranslate(scaleWidth, scaleHeight)
{
    ctx = document.createElement('canvas').getContext('2d');   
    ctx.translate(scaleWidth, scaleHeight);
    ctx.fillStyle = 'green';
    ctx.fillRect(0, 0, 100, 100);
    CheckPixelRGB(ctx, 50, 50, [0, 128, 0]);
}

function TestContextRotate(rotation)
{
    ctx = document.createElement('canvas').getContext('2d');   
    ctx.rotate(rotation);
    ctx.fillStyle = 'green';
    ctx.fillRect(0, 0, 100, 100);
    CheckPixelRGB(ctx, 50, 50, [0, 128, 0]);
}

var testScenariosScale = [
    ['Test scale(NaN, 1)', NaN, 1],
    ['Test scale(1, NaN)', 1, NaN],
    ['Test scale(Infinity, 1)', Infinity, 1],
    ['Test scale(1, Infinity)', 1, Infinity],
];

var testScenariosTranslate = [
    ['Test translate(NaN, 1)', NaN, 1],
    ['Test translate(1, NaN)', 1, NaN],
    ['Test translate(Infinity, 1)', Infinity, 1],
    ['Test translate(1, Infinity)', 1, Infinity],
];
    
var testScenariosRotate = [
    ['Test rotate(NaN)', NaN],
    ['Test translate(Infinity)', Infinity],
];

generate_tests(TestContextScale, testScenariosScale);
generate_tests(TestContextTranslate, testScenariosTranslate);
generate_tests(TestContextRotate, testScenariosRotate);

</script>
</body>
